package games.patience.core;

import commomgame.Region;
import commomgame.SubRegion;

/**
 *Classe que representa a região de fundações do Jogo de Paciência
 * @author Fernanda & Igo
 */
public class RegionOfFoundations extends Region {

    /**
     * Configura o número de subregiões da região de fundações e invoca método para nomear cada uma destas subregiões
     * @param numberOfSubRegions Representa o número de subregiões da região de fundações
     */
    public RegionOfFoundations(int numberOfSubRegions) {

        super(numberOfSubRegions);
        this.rulesOfMovement = new RulesOfFoundations();
        this.setNameOfSubRegions();
    }

    /**
     *Define os nomes de todas as subregiões da região de fundações
     */
    private void setNameOfSubRegions() {
        String name = "";
        for (int i = 1; i <= this.numberOfSubRegions; i++) {
            name = "F";
            this.getRegion().get(i - 1).setName(name += i);
        }
    }

    /**
     * Método invocado quando usuário movimenta carta tendo a região de fundações como destino
     *
     * @param value Representa o valor da carta escolhida pelo usuário para movimentação
     * @param nipe Representa o nipe da carta escolhida pelo usuário para movimentação
     * @param subRegionOrigin Representa a região de origem da carta
     * @param subRegionTarget Representa a região de destino da carta: região de fundações
     * @return permissão de movimentação da carta
     */
    public boolean verifyRule(int value, String nipe, SubRegion subRegionOrigin, SubRegion subRegionTarget) {

        //if(rulesOfMovement.verifyMovement(value, nipe, subRegionOrigin, subRegionTarget)){
            return rulesOfMovement.verifyMovement(value, nipe, subRegionOrigin, subRegionTarget);
            //subRegionTarget.addCardInSubRegion(subRegionOrigin.selectCard(value, nipe));
            //subRegionOrigin.removeCard(subRegionOrigin.selectCard(value, nipe));
            //return true;
        //} else {
          //  return false;
        //}
    }
}
